public class FindFirstAndLastPositionOfElementInSortedArray {
    // 在排序数组中查找元素的第一个和最后一个位置 https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/description/
    public int[] searchRange(int[] nums, int target) {
        int left=0,right=nums.length-1;
        int[] ret=new int[]{-1,-1};
        if(nums.length==0) return ret;// 当数组为空时,直接返回

        //求区间左端点
        while(left<right) { //循环条件不能取等
            int mid=left+(right-left)/2; //左端点求中点不加1
            if(nums[mid]<target) {
                left=mid+1;
            } else {
                right=mid;
            }
        }
        if(nums[left]==target) ret[0]=left;
        else return ret;

        // 求区间右端点
        left=0;// 没有必要再从0开始了
        right=nums.length-1;
        while(left<right) {
            int mid=left+(right-left+1)/2; //右端点求中点要加1
            if(nums[mid]>target) {
                right=mid-1;
            } else {
                left=mid;
            }
        }
        ret[1]=left;
        return ret;
    }
}
